[AWS Technical Support Note]ฉันจะได้รับแจ้งเตือนหรือป้องกันการอัปโหลดหรือการเปลี่ยนแปลงออบเจ็กต์โดยไม่ได้ตั้งใจได้อย่างไร

[AWS Technical Support Note]ฉันจะได้รับแจ้งเตือนหรือป้องกันการอัปโหลดหรือการเปลี่ยนแปลงออบเจ็กต์โดยไม่ได้ตั้งใจได้อย่างไร

บทความนี้มีการค้นคว้า รวบรวม และสรุปวิธีการแจ้งเตือนเมื่อมีการเปลี่ยนแปลงที่เกี่ยวข้องกับS3บัคเก็ตและออบเจ็กต์

ปัญหาที่เกิดขึ้น

ฉันต้องการทราบวิธีตรวจจับ S3อ็อบเจ็กต์ หรือ บัคเก็ต เมื่อมีการเปลี่ยนแปลง

วิธีแก้ปัญหา

1. แจ้งเตือน event ของอ็อบเจ็กต์ด้วย Amazon S3 Event Notifications

คุณจะได้รับการแจ้งเตือนเมื่อเกิด event การสร้างหรือการลบS3อ็อบเจ็กต์

Amazon S3 Event Notifications (English)

Currently, Amazon S3 can publish notifications for the following events:

  • New object created events
  • Object removal events
  • Restore object events
  • Reduced Redundancy Storage (RRS) object lost events
  • Replication events
  • S3 Lifecycle expiration events
  • S3 Lifecycle transition events
  • S3 Intelligent-Tiering automatic archival events
  • Object tagging events
  • Object ACL PUT events

แปลไทย

ในปัจุบัน S3 สามารถส่งการแจ้งเตือนสำหรับ event ดังต่อไปนี้

  • Event การสร้างอ็อบเจ็กต์ใหม่
  • Event การลบอ็อบเจ็กต์
  • Event การกู้คืนอ็อบเจ็กต์
  • Event การสูญเสียออบเจ็กต์ Redundancy Storage (RRS) ที่ลดลง
  • Event การทำสำเนา(replication)
  • Event การหมดอายุของวงจรการใช้งาน S3 (Lifecycle expiration)
  • Event การเปลี่ยนแปลงวงจรการใช้งาน S3 (Lifecycle transition)
  • Event การเก็บถาวรอัตโนมัติแบบแบ่งระดับอัจฉริยะของ S3 (S3 Intelligent-Tiering automatic archival)
  • Event การแท็ก อ็อบเจ็กต์ (Object tagging)
  • Event อ็อบเจ็กต์ ACL PUT

คุณสามารถตั้งค่าการแจ้งเตือนให้ส่งไปยังบริการเหล่านี้ได้ เช่น คุณสามารถเลือก SNS Topic และส่งการแจ้งเตือนทางอีเมลได้

Amazon S3 can send event notification messages to the following destinations. You specify the Amazon Resource Name (ARN) value of these destinations in the notification configuration.

  • Amazon Simple Notification Service (Amazon SNS) topics
  • Amazon Simple Queue Service (Amazon SQS) queues
  • AWS Lambda function
  • Amazon EventBridge

แปลไทย

Amazon S3 สามารถส่งข้อความแจ้งเตือน event ไปยังปลายทางต่อไปนี้ คุณระบุค่า Amazon Resource Name (ARN) ของปลายทางเหล่านี้ในการกำหนดค่าการแจ้งเตือน

  • Amazon Simple Notification Service (Amazon SNS) topics
  • Amazon Simple Queue Service (Amazon SQS) queues
  • AWS Lambda function
  • Amazon EventBridge

ข้อควรระวัง :ในระหว่างที่กำลังตั้งค่าการแจ้งเตือน S3 Event หากมีการอัปเดตเกิดขึ้นในS3บัคเก็ตที่คุณกำลังจะตั้งค่า คุณอาจต้องลบการแจ้งเตือนS3 Event ชั่วคราว หรือ เพิกเฉยต่อการแจ้งเตือนในขณะที่กำลังตั้งค่า

2. แจ้งการเปลี่ยนแปลง Policy ของ S3 บัคเก็ตที่ log ของ CloudTrail

คุณสามารถตั้งค่าให้ Log ของ CloudTrail บันทึกใน CloudWatch Logs และสร้างการแจ้งเตือน CloudWatch เพื่อแจ้งให้คุณทราบถึงการเปลี่ยนแปลง Policy ของ S3 บัคเก็ต

Creating CloudWatch alarms for CloudTrail events: examples (English)

3. แจ้งเตือนโดยใช้ Config Rule

คุณสามารถได้รับการแจ้งเตือนเมื่อมี action ที่ไม่เป็นไปตามข้อกำหนดโดยการ Evaluate การตั้งค่า resource ที่ Config Rule

Security best practices for Amazon S3 (English)

Enable AWS Config
Several of the best practices listed in this topic suggest creating AWS Config rules. AWS Config helps you to assess, audit, and evaluate the configurations of your AWS resources. AWS Config monitors resource configurations so that you can evaluate the recorded configurations against the desired secure configurations.

แปลไทย

แนวทางปฏิบัติที่ดีที่สุดในหัวข้อนี้แนะนำให้สร้าง AWS Config Rule ที่จะช่วยให้คุณประเมิน ตรวจสอบ และวินิจฉัยการกำหนดค่าทรัพยากร AWS ของคุณ AWS Config ตรวจสอบการกำหนดค่าทรัพยากร เพื่อให้คุณสามารถประเมินการกำหนดค่าที่บันทึกไว้เทียบกับการกำหนดค่าความปลอดภัยที่ต้องการได้

ในการตั้งค่า Config Rule มี Managed Rule (Rule Group ที่สร้าง หรือ ควบคุมโดย AWS หรือ Rule Groups Collection ที่สร้าง หรือ ควบคุมโดย businesses selling ที่ AWS Marketplace) หลายรูปแบบที่ถูกเตรียมไว้ เช่น Rule สำหรับตรวจสอบให้แน่ใจว่าไม่มีการอนุญาตให้เข้าถึง read/write ที่ S3บัคเก็ต

s3-bucket-public-read-prohibited(English)
Checks if your Amazon S3 buckets do not allow public read access. The rule checks the Block Public Access settings, the bucket policy, and the bucket access control list (ACL).

แปลไทย

s3-bucket-public-read-prohibited
ตรวจสอบว่า Amazon S3 บัคเก็ตของคุณไม่อนุญาตให้เข้าถึง public read access หรือไม่ rule นี้จะตรวจสอบการตั้งค่าบล็อกการเข้าถึงสาธารณะ bucket policy และรายการควบคุมการเข้าถึงบัคเก็ต (bucket access control list)

s3-bucket-public-write-prohibited(English)
Checks if your Amazon S3 buckets do not allow public write access. The rule checks the Block Public Access settings, the bucket policy, and the bucket access control list (ACL).

แปลไทย

s3-bucket-public-write-prohibited
ตรวจสอบว่า Amazon S3 บัคเก็ตของคุณไม่อนุญาตให้เข้าถึง public write access หรือไม่ rule นี้จะตรวจสอบการตั้งค่าบล็อกการเข้าถึงสาธารณะ นโยบายบัคเก็ต และรายการควบคุมการเข้าถึงบัคเก็ต (the bucket access control list)

4. อื่นๆ

นอกเหนือจากการแจ้งเตือนการเปลี่ยนแปลงของ S3 บัคเก็ตและอ็อบเจ็กต์ที่ได้แนะนำไปข้างต้น ยังมีฟังก์ชันต่อไปนี้อีกด้วย

การเปิดใช้งาน server access logging สำหรับ S3 บัคเก็ตของคุณ

หากเกิดการเปลี่ยนแปลงโดยไม่ได้ตั้งใจ คุณสามารถตรวจสอบข้อมูลรีเควสได้ใน access log
Logging requests with server access logging(English)

S3 Object Lock

คุณสามารถใช้ Object Lock เพื่อใช้ฟังก์ชันสำหรับป้องกันการปลอมแปลงได้
Using S3 Object Lock(English)

ข้อควรระวังสำหรับ Object Lock จะถูกใช้กับแต่ละเวอร์ชั่นของอ็อบเจกต์ การตั้งค่าจะไม่ส่งผลต่อเวอร์ชั่นใหม่ของอ็อบเจกต์

Object Lock works only in buckets that have S3 Versioning enabled. When you lock an object version, Amazon S3 stores the lock information in the metadata for that object version. Placing a retention period or a legal hold on an object protects only the version that's specified in the request. Retention periods and legal holds don't prevent new versions of the object from being created, or delete markers to be added on top of the object.

แปล

Object Lock ใช้งานได้เฉพาะในบัคเก็ตที่เปิดใช้งานการกำหนดเวอร์ชันของ S3 เท่านั้น เมื่อคุณล็อกเวอร์ชันของอ็อบเจ็กต์ Amazon S3 จะจัดเก็บข้อมูลการล็อกไว้ในเมตาดาต้าสำหรับเวอร์ชันของอ็อบเจ็กต์นั้น หากตั้งค่า retention period หรือ legal hold บนอ็อบเจ็กต์ จะปกป้องเฉพาะเวอร์ชันที่ระบุไว้ในรีเควสเท่านั้น ระยะเวลาการเก็บรักษาและการเก็บรักษาข้อมูลระหว่างดำเนินคดีไม่ได้ป้องกันการสร้างออบเจ็กต์เวอร์ชันใหม่หรือลบเครื่องหมายที่จะเพิ่มไว้ด้านบนของออบเจ็กต์

สรุป

วิธีที่ได้แนะนำในบทความนี้จะสามารถใช้งานได้อย่างมีประสิทธิภาพหรือไม่ขึ้นอยู่กับ Requirement ของแต่ละสภาพแวดล้อมด้วย เราหวังวังว่าบทความนี้จะสามารถนำไปเป็นข้อมูลอ้างอิงที่มีประโยชน์ต่อทุกท่านได้

บทความอ้างอิง

Amazon S3 คืออะไร? ควรใช้เมื่อไหร่? และศัพท์เฉพาะที่ควรรู้ (Thai)
Amazon S3 Event Notifications (English)
Amazon S3 monitoring and auditing best practices (English)
s3-bucket-public-read-prohibited (English)
s3-bucket-public-write-prohibited (English)
Logging requests with server access logging (English)
Using S3 Object Lock (English)
Enable Server-Side Logging on S3 Buckets Using AWS Config Rules (English)

บทความต้นฉบับ

意図しないオブジェクトのアップロードや変更を通知する方法、または防止する方法を教えてください (Japanese)

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.